# -*- coding: utf-8 -*-
# @Time    : 2019/10/17 13:14
# @Author  : LiHaowen
# @Email   : lihaowen2017@163.com
# @File    : what_is_var.py

# python 和java中变量的本质不一样，python的变量实质上是一个指针 int str

a = 1
a = "abc"
# 1. a贴在1上面
# 2. 先生成对象，然后贴便利贴

a = [1, 2, 3]
b = a
b.append(4)
print(a is b)  # 是否是同一个对象
print(id(a), id(b))  # id相同，为同一个对象

c = [1, 2, 3, 4]
d = [1, 2, 3, 4]
print(c is d)  # False
print(id(c), id(d))
print(c == d)  # True

e = 1  # intern 机制 对于小的整数和字符串 python内部进行优化创建全局唯一的对象，之后再次创建小对象会直接指向之前建立的对象
f = 1
print(id(e), id(f))
print(e is f)  # True
